// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.SQLStatement;
// import com.alibaba.druid.sql.ast.statement.SQLAlterStatement;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
#pragma once
#include "MySqlStatementImpl.h"
#include "../../../../ast/statement/SQLAlterStatement.h"

class MySqlAlterEventStatement : virtual public MySqlStatementImpl, virtual public SQLAlterStatement
{
  SQLName_ptr definer;
  SQLName_ptr name;

  MySqlEventSchedule_ptr schedule;
  BOOL_ptr onCompletionPreserve;
  SQLName_ptr renameTo;
  BOOL_ptr enable;
  BOOL_ptr disableOnSlave;
  SQLExpr_ptr comment;
  SQLStatement_ptr eventBody;

  MySqlAlterEventStatement();
  SHAREDOBJECT(MySqlAlterEventStatement);

  void accept0(MySqlASTVisitor_ptr visitor);

  SQLName_ptr getDefiner();

  void setDefiner(SQLName_ptr definer);

  SQLName_ptr getName();

  void setName(SQLName_ptr name);

  MySqlEventSchedule_ptr getSchedule();

  void setSchedule(MySqlEventSchedule_ptr schedule);

  BOOL_ptr isOnCompletionPreserve();

  void setOnCompletionPreserve(BOOL_ptr onCompletionPreserve);

  SQLName_ptr getRenameTo();

  void setRenameTo(SQLName_ptr renameTo);

  BOOL_ptr getEnable();

  void setEnable(BOOL_ptr enable);

  BOOL_ptr isDisableOnSlave();

  void setDisableOnSlave(BOOL_ptr disableOnSlave);

  SQLExpr_ptr getComment();

  void setComment(SQLExpr_ptr comment);

  SQLStatement_ptr getEventBody();

  void setEventBody(SQLStatement_ptr eventBody);
};
